package com.jt.controller;

import com.jt.service.FileService;
import com.jt.vo.ImageVO;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.awt.image.VolatileImage;
import java.io.IOException;

/**
 * @author :Colin
 * @version 创建时间: 2021/8/10 14:42
 */
@RestController
@RequestMapping("/file")
@CrossOrigin
public class FileController {
    @Autowired
    FileService fileService;
    /**
     * 文件上传业务接口
     * 请求路径: http://localhost:8091/file/upload
     * 请求类型: post
     * 请求参数:
     * 参数名称	参数说明	备注
     * file	文件上传的参数名称	file中携带的是二进制信息
     *
     * 返回值结果:
     * 参数名称	参数说明	备注
     * status	状态信息	200表示服务器请求成功 201表示服务器异常
     * msg	服务器返回的提示信息	可以为null
     * data	服务器返回的业务数据	返回ImageVO对象
     * @return
     */
    /*@PostMapping("/upload")
    public SysResult upload(MultipartFile file) throws IOException {
        //1.名
        String originalFilename = file.getOriginalFilename();
        //2.目录
        File dirFile = new File("D:/jt/images");
        if (!dirFile.exists()){
            dirFile.mkdirs();
        }
        //3.拼
        String filePath="D:/jt/images/"+originalFilename;
        //4.传
        file.transferTo(new File(filePath));
        System.out.println("上传成功");
        return SysResult.success();
    }*/

    @PostMapping("/upload")
    public SysResult upload(MultipartFile file) throws IOException {
        ImageVO imageVO = fileService.upload(file);
        if(imageVO == null){
            return SysResult.fail();
        }
        return SysResult.success(imageVO);

    }
    /**
     * Request:delete the image
     * URL:
     * Params:virtualPath
     * Return:SysResult
     * */
    @DeleteMapping("/deleteFile")
    public SysResult deleteFile(String virtualPath){
        fileService.deleteFile(virtualPath);
        return SysResult.success();
    }

}
